The invention relates to a correlator in a receiver for a spread spectrum signal and particularly to the generation in the correlator of the different code phases required in the tracking of a spreading code.
In spread spectrum systems, the bandwidth used for transmitting a signal is substantially wider than is required for the data to be transmitted. The spectrum of a signal is spread in the transmitter by means of a pseudo-random spreading code, which is independent of the original data. In the receiver, a code replica, which is an identical copy of said spreading code, is used to narrow the spectrum of a signal. Spread spectrum systems can be coarsely divided into direct sequence (DS) spread spectrum systems and frequency hopping (FH) spread spectrum systems. In frequency hopping systems, the transmission frequency is varied in accordance with a pseudo-random spreading code within the limits of the available bandwidth, i.e. hopping occurs from one frequency to another. In direct sequence systems, the spectrum is spread to the available bandwidth by shifting the phase of the carrier in accordance with a pseudo-random spreading code. The bits of a spreading code are usually called chips as distinct from actual data bits.
To enable a spectrum to be narrowed in a direct sequence receiver, the receiver has to be able to synchronize with a received signal as accurately as possible and to maintain the synchronization. Rapid implementation of this synchronization is vital in several applications.
Advantages of spread spectrum systems include their resistance to interference, wherefore they are generally used in military applications. Furthermore, in direct sequence systems, the propagation time of a signal between a transmitter and a receiver can be accurately measured, enabling the use of applications utilizing distance measurement, such as positioning systems. Distance measurement is based on synchronization of a spreading code, which can usually be carried out very accurately, usually at an accuracy of more than 1/10 chip. Further, since the frequency of the code is high, very good measurement accuracy is achieved. When the transmission time of the code is known, the time taken up by the propagation of the signal can be calculated, which, by division with the speed of light, yields the distance between the transmitter and the receiver.
FIG. 1 shows a spread spectrum system based on a direct sequence, in which system a transmitter 101 comprises not only a data modulator 104, but also a spreading code modulator 106 for spreading a transmitted spectrum by means of a spreading code. A receiver 102 comprises a despreading modulator 108, which operates with a spreading code replica identical to said spreading code and correlates a received signal with said spreading code replica. If the spreading code and the spreading code replica generated in the receiver are identical, and the spreading code replica and the spreading code included in the received signal are in phase, a data modulated signal preceding the spreading is obtained from the output of the despreading modulator 108. At the same time, any spurious signals are spread. A filter 110, which succeeds the despreading modulator 108, lets the data modulated signal through, but removes most of the power of a spurious signal, which improves the signal-to-noise ratio of the received signal. In order for the system to operate, the spreading code replica generated in the receiver has to be and stay in phase with the spreading code included in the received signal. For this reason, a special synchronization algorithm is required for the spreading code in addition to regular carrier and data synchronization.
A known manner of implementing spreading code tracking is to use the correlator of FIG. 2, comprising two branches 202 and 204, in which an incoming signal Sin is correlated with an early Ce and late Cl spreading code replica locally generated with generation means 209. Both branches comprise a multiplier 205, 206 for correlating the signal, a filter 207, 208, and a quadratic detector 210, 211 for detecting the correlation result. Correlation results 214 and 216 obtained from the branches 202 and 204 are subtracted from one another by an adder 212. A discrimination function depending on the phase difference of the local spreading code replica and the phase error of the code included in the incoming signal Sin and on the function of the detector used is obtained from the output of the adder 212, and this discrimination function is used to adjust the phase of the spreading code in the right direction.
FIG. 3 shows the graph of a discrimination function, which has been normalized such that the maximum amplitude of the signal is ±1.
FIG. 4A shows another known correlator structure for spreading code tracking, i.e. a tau-dither correlator, in which the same correlator 402 is used alternately with an early Ce and late Cl spreading code replica locally generated with generation means 407. A loop filter 404 averages a difference 405 between alternate correlations, and as a result 406 is obtained a discrimination function similar to that in the implementation of FIG. 2. FIGS. 4B, 4C and 4D show the control signals g(t), g(t) and g′(t), respectively, of the tau-dither correlator of FIG. 4A. Since in the tau-dither correlator, each correlation is calculated for only half the time, some of the signal-to-noise ratio of the signal is lost, but, owing to the smaller number of necessary components compared with the implementation of FIG. 2, this structure has been popular, particularly as an analog implementation. However, in present digital correlators, this structure is no longer much used.
FIG. 5 shows a third known structure for spreading code tracking. Here, early Ce and late Cl versions of a spreading code replica locally generated with generation means 509 are first subtracted from one another with an adder 506, and the obtained result 508 is correlated with an incoming signal Sin. This implementation is approximately equivalent to that of FIG. 2, but requires fewer components than the implementation of FIG. 2.
FIG. 6 shows a known structure for generating a phased code replica, i.e. a three-stage shift register 604. The generation means block of FIGS. 2, 4 and 5 can be replaced by the structure of FIG. 6. A code replica Cin generated with a code generator 602 controlled by a clock signal CLKgen is clocked to the shift register 604 with a clock signal CLKsr. An early Ce (advanced) a precise Cp and a late Cl (delayed) code replica are obtained from the outputs 606, 608, 610, respectively, of the registers of the shift register. The phase difference of the code replica between two register elements is 1/F, wherein F is the clock frequency of the shift register. This phase difference usually varies from the length of one chip to that of 1/10 chip. The most used phase difference is ±½ chip, yielding the best result as regards discrimination. Smaller phase differences are used when spreading code phase tracking has to be more accurate, which is important particularly in distance measurement applications. A small phase difference of a spreading code results in a weaker signal-to-noise ratio for the discrimination signal used in spreading code replica tracking, but the error in spreading code tracking obtained as the final result is usually smaller than when a greater phase difference of a spreading code is used. The phase difference is usually generated by obtaining the clock signal CLKsr of the shift register from a clock generator controlled in accordance with the tracking algorithm of the spreading code, and the clock signal CLKgen of the code generator is generated by dividing the clock signal generated by the clock generator by a positive integer (usually between 2 and 10). If the division ratio exceeds two, ‘narrow’ correlation is involved, and is useful when the attempt is to decrease the phase error in spreading code tracking caused by multipath propagation. In such an implementation, the discrimination function can be changed by changing both the frequency of the clock generator and the division ratio in such a manner that the clock frequency of the code generator remains unchanged. The problem in such adjustment is that when the clock frequency is changed, the length in time of the shift register changes, which changes the timing of the generated spreading code replica. A three-stage shift register cannot either be used to implement more than +1-chip wide ‘wide’ discrimination functions because of the autocorrelation properties of the spreading code, since when small code phase errors are used, a ‘dead point’ is created in the discrimination function, and at this point the value of the function is zero.
It is also known to use a longer than three-stage shift register for generating code phases and more complex discrimination functions in such a way that each output of the shift register is separately connected to a separate correlator. However, such a structure requires more components than the structure shown in FIG. 6.